home *** CD-ROM | disk | FTP | other *** search
- .PL 72
- ..
- L-------!-------!-------!-------!-------!-------!-------!------R
- ⇦
-
- ❎S o f t D e s i g n②
-
-
- ❎CP/M-Z80 EMULATOR FOR ATARI TOS②
-
-
-
-
- O V E R V I E W
-
-
-
- - ⑦Realtimeá emulatio∈ oµ al∮ Z8ã instruction≤② ove≥ thσ ful∮ 64י ì
- addressinτ range.
-
-
- - IJá completσ CP/M-8ã versio∈ 2.Ø compatiblσ systeϕ environmen⌠ ì
- anΣá use≥ interfacσ i≤ implemented¼á ⑦al∮á CP/M-8ãá compatibleÆ ì
- ⑦programsÆ ca∈ bσ executed.
-
-
- - Thσ Emulato≥ run≤ averagσ CP/M-8ã program≤ witΦ thσ speeΣá oµ ì
- a 2 MH· Z8ã system.
-
-
- - Thσá Emulato≥á make≤ ⑦an∙ ATARח Sק systemÆ ac⌠ a≤á βá CP/M-8ã ì
- systeϕ withou⌠ an∙ hardwarσ o≥ softwarσ adaptation«
-
-
- - Z8ã I/נ opcode≤ arσ supporteΣ b∙ β built-i∈ interfacσ t∩ use≥ ì
- supplied drivers.
-
-
-
-
-
-
- *******************************************************
- * *
- * (C) 85 S o f t D e s i g n *
- * Lichtenfelser Str. 29 *
- * D-8000 Muenchen 60 *
- * West Germany *
- * *
- * Tel.: 89 - 87 89 55 *
- * *
- *******************************************************
- .PA
-
- è
- ❎S o f t D e s i g n②
-
-
- ❎CP/M-Z80 Emulator for ATARI TOS②
-
-
-
-
- E M U L A T O R I M P L E M E N T A T I O N
-
-
-
- -ááThσá Emulato≥ i≤ completel∙ writte∈ i∈ assembl∙ languagσá anΣ ì
- áááuse≤ thσ largσ registe≥ framσ oµ thσ Mב 6800ã t∩ β maximum.
-
- -ááZ8ãá opcodσá interpretatio∈á i≤á tablσá drive∈á t∩á speeΣá u≡
- áááexecutio∈ time«
- .PA
- è
- ❎S o f t D e s i g n②
-
-
- ❎CP/M-Z80 Emulator for ATARI TOS②
-
-
-
-
- C P M Z 8 0 C C P I M P L E M E N T A T I O N
-
-
-
- - Thσá Consolσ CommanΣ Processo≥ i≤ CP/ל 2.Ø upwarΣá compatiblσ ì
- bu⌠ enhanceΣ i∈ man∙ respects.
-
- - User Memory (TPA) is 58KByte ("63 K CP/M").
-
- - CommanΣá file≤á no⌠á founΣ unde≥ thσ curren⌠á use≥á arσá als∩ ì
- searcheΣ under user 0.
-
- - A∈á additiona∮ COPך commanΣ allow≤ thσ copyinτ oµ disδ file≤ ì
- witΦá PIס likσ operation«á COPך show≤ thσ name≤ oµ thσá file≤ ì
- beinτ copied.
-
- - Thσá DIפ commanΣ show≤ a sorted directory of disk files. It
- displays the sizσ oµ eacΦ file¼á thσ tota∮ sizσ, thσ tota∮
- numbe≥ oµ file≤ and the amount of free space on the disk.
-
- - A DIRS command displays a sorted directory of system files.
-
- - Thσ ERIJ commanΣ show≤ thσ namσ oµ eacΦ deleteΣ file.
-
- - Thσá REמá commanΣ allow≤ thσ use≥ t∩ omi⌠ onσ drivσá specifi ì
- cation.
-
- - Thσ use≥ ca∈ exi⌠ t∩ TOS b∙ a∈ EXIק command.
-
- - CommanΣá line≤á startinτá witΦ ";óá arσá ignoreΣá t∩á suppor⌠ ì
- comment lines within submit files.
-
- - Submi⌠ processinτ ca∈ bσ initiateΣ froϕ an∙ defaul⌠ drivσ.
- .PA
- è
- ❎S o f t D e s i g n②
-
-
- ❎CP/M-Z80 Emulator for ATARI TOS②
-
-
-
-
- C P M Z 8 0 B D O S I M P L E M E N T A T I O N
-
-
-
- - Thσá BDOצá i≤ CP/ל 2.Ø upwarΣ compatiblσ witΦá man∙á interna∮ ì
- improvements.
-
- - ChangeΣ disk≤ arσ automaticall∙ detecteΣ anΣ newl∙ loggeΣ in« ì
- The infamous Control-C is no longer necessary.
-
- - O∈á disδ reaΣ anΣ writσ error≤ thσ use≥ ca∈ optionall∙á abor⌠ ì
- or retry the operation or ignore the error.
-
- - Minor errors in version 2.2 of CP/M have been corrected.
-
-
-
-
- C P M Z 8 0 B I O S I M P L E M E N T A T I O N
-
-
-
- - Thσá BIOצ function≤ arσ directeΣ t∩ 6800ã routine≤ whicΦá usσ ì
- thσ TOS BIOS.
-
- - Al∮ physica∮ I/נ device≤ implementeΣ unde≥ TOצ arσ accessiblσ ì
- unde≥á CPMZ80«á Thσ printe≥ por⌠ i≤ mappeΣ t∩ thσ CPMZ8ã LST: ì
- device¼á thσ TTY´á devicσ correspond≤ t∩ thσ modeϕ port¼á thσ ì
- flopp∙ drive≤ ac⌠ a≤ A´á anΣ B´á drive≤ unde≥ CPMZ8ã anΣá thσ ì
- CON: device accesses the keyboard and screen of the ATARI ST.
-
- - IJá full∙ implementeΣ CP/ל 2.Ø compatiblσ I/O-Bytσ allow≤á thσ ì
- user to change the logical to physical I/O device mapping.
-
- -ááThe CPMZ80 Emulator system needs no installation.
- .PA
- è
- ❎S o f t D e s i g n②
-
-
- ❎CP/M-Z80 Emulator for ATARI TOS②
-
-
-
-
- P E R F O R M A N C E
-
-
-
- -ááPerformancσá varie≤ fo≥ differen⌠ programs«á Onσ majo≥ facto≥ ì
- ááái≤á thσ frequenc∙ oµ disδ access«á Program≤ witΦá heav∙á disδ ì
- áááI/נ ma∙ ru∈ eve∈ faste≥ tha∈ o∈ Z8ã hardwarσ becausσ thσ ful∮ ì
- disδ speeΣ oµ thσ hos⌠ systeϕ i≤ availablσ t∩ emulateΣ CPMZ8ã ì
- O∈ thσ othe≥ hanΣ extensivσ arithmetiπ computation≤ slo≈ dow∈ ì
- thσ Emulator.
-
- - Thσ timσ rati∩ (Emulator/Z80⌐ betwee∈ thσ Emulato≥ o∈ β Õ MH· ì
- 6800ãá systeϕá anΣ β œ MH· Z8ã systeϕ wa≤ measureΣá fo≥á somσ ì
- CP/M 2.2 program≤ :
-
- áááextreme values: 0.6 and 6.0
- áááaverage: 2.0
- .PA
- è
- ❎S o f t D e s i g n②
-
-
- ❎Operation of the②
- ❎CP/M-Z80 Emulator for ATARI TOS②
-
-
-
-
- I N V O C A T I O N
-
-
-
- To start the Emulator, simply type on the command line:
-
- "CPMZ80 <Return>"
-
- or
-
- "CPMZ80 <CP/M-80 Commandline> <Return>"
-
-
- The CPMZ80 EMULATOR displays the prompt:
-
- "Please change to CPMZ80 disk and press any key to continue"
-
- Remove the TOS disk, enter a CPMZ80 disk and press a key.
-
- Thσ firs⌠ commandlinσ put≤ yo⌡ i∈ thσ commanΣ modσ oµ β CP/ל 2.Ø ì
- systeϕá exactl∙á a≤ yo⌡ arσ useΣ t∩ witΦ an∙ Z8ãá hardwarσá CP/ל ì
- system«á Iµá yo⌡ specif∙ thσ optiona∮ CP/M-8ã commandline¼á thi≤ ì
- commanΣ i≤ directl∙ executeΣ b∙ thσ Emulator«á O∈á startup¼á thσ ì
- defaul⌠ drivσ i≤ se⌠ t∩ thσ samσ drivσ a≤ unde≥ TOS«á IJ completσ ì
- CP/לá 2.Ø compatiblσ systeϕ environmen⌠ i≤ implemented«á Thσ CCס ì
- use≥ interfacσ supplie≤ al∮ built-i∈ command≤ (DIR¼á ERA¼á REN¼ ì
- SAVE¼á TYPE¼á USER⌐á anΣá loading/executinτá oµá program≤á (.COל ì
- files)« Additionally¼ COPך allow≤ t∩ cop∙ file≤ anΣ DIRצ show≤ β ì
- director∙á oµá systeϕ files«á EXIק ha≤ bee∈ addeΣ t∩á providσá β ì
- convenien⌠ wa∙ bacδ t∩ TOS.
-
- Thσá BDOצá systeϕ interfacσ i≤ totall∙ compatiblσ t∩á CP/לá 2.2« ì
- Ful∮á implementatio∈ oµ thσ BIOצ interfacσá permit≤á applicatio∈ ì
- program≤ t∩ usσ direc⌠ BIOצ acces≤ (eve∈ disδ related).
- .PA
-
- è
- ❎S o f t D e s i g n②
-
-
- ❎Operation of the②
- ❎CP/M-Z80 Emulator for ATARI TOS②
-
-
-
-
- חáמ ק ד פ ה IJ ב ד ק נ ר צ ד פ ח » נì
-
-
-
- IJá specia∮á interfacσ i≤ provideΣ t∩ linδ 6800ã hardwarσ I/נá t∩ ì
- Z8ãá programs«á IJá use≥ supplieΣ I/נ drive≥á ca∈á optionall∙á bσ ì
- activated«á Whe∈ thσ Emulato≥ i≤ started¼á i⌠ look≤ fo≥ thσ filσ ì
- 'EMUIO.PRG'«á Thσ Emulato≥ trie≤ t∩ ope∈ thi≤ filσ anΣ loaΣá it« ì
- Iµ thσ filσ wa≤ loadeΣ successfully¼ thσ I/נ drive≥ i≤ activateΣ ì
- anΣ thσ message
-
- "Emulator I/O driver installed"
-
- i≤á shown«á Iµá β hardwarσ I/נ drive≥ canno⌠ bσ found¼á Z8ãá I/נ ì
- opcode≤ i∈ emulateΣ program≤ leaΣ t∩ thσ message
-
- "Emulator error => Illegal opcode : XX XX at address : XXXX"
-
- and the Emulator is aborted.
- .PA
-
- è
- ❎S o f t D e s i g n②
-
-
- ❎Operation of the②
- ❎CP/M-Z80 Emulator for ATARI TOS②
-
-
-
-
- G E N E R A L R E S T R I C T I O N S
-
-
-
- Thσá Emulato≥á doe≤ no⌠ suppor⌠ an∙ undocumenteΣ Z8ã opcode≤á o≥ ì
- hardwarσá dependan⌠ opcode≤ sucΦ a≤ interrup⌠á control«á Iµá thσ ì
- Emulato≥ find≤ sucΦ opcode≤ i∈ emulateΣ programs¼ i⌠ abort≤ witΦ ì
- thσ message:
-
- "Emulator error => Illegal opcode : XX XX at address : XXXX"
- .PA
-
- è
- ❎S o f t D e s i g n②
-
-
- ❎Operation of the②
- ❎CP/M-Z80 Emulator for ATARI TOS②
-
-
-
-
-
- D E M O V E R S I O N R E S T R I C T I O N S
-
-
-
- Thσá dem∩á versio∈á oµ thσ Emulato≥ show≤ "Demoó i∈á thσá signo∈ ì
- message«á I⌠á i≤á fo≥ demonstratio∈ purpose≤ onl∙ anΣá ha≤á bee∈ ì
- modifieΣ i∈ thσ followinτ aspects:
-
- - The signon message appears at every warmstart.
-
- - Disk write access is disabled.
-
- - Input/Outpu⌠ o∈ thσ logica∮ device≤ LST:¼á PUN´á anΣá RDR´á i≤ ì
- ignored.
- .PA
- è
- ❎S o f t D e s i g n②
-
-
- ❎Optional I/O opcode support②
-
-
-
-
- I / O D R I V E R C O N V E N T I O N S
-
-
-
- Iµ β use≥ drive≥ i≤ activated¼á thσ Z8ã I/O opcode≤ arσ directeΣ ì
- int∩á thi≤á driver«á Thσá drive≥ ha≤ t∩ bσ βá use≥á codeΣá 6800ã ì
- prograϕ witΦ thσ followinτ conventions´
-
- - Thσá drive≥ codσ mus⌠ begi∈ witΦ tw∩á jum≡á instructions«á Thσ ì
- firs⌠á jum≡ i≤ useΣ b∙ al∮ inpu⌠ request≤ anΣ thσ seconΣá b∙ ì
- al∮ outpu⌠ requests.
-
- - Thesσá jump≤ leaΣ t∩ thσ use≥ inpu⌠ anΣ outpu⌠ servicσ rouì
- tines«á Thesσ routine≤ terminatσ witΦ β Retur∈ froϕá Subroutinσ ì
- RTצ instruction.
-
- - Thσ inpu⌠ routinσ receive≤ thσ Z8ã por⌠ numbe≥ i∈ thσ lo≈ bytσ ì
- oµ registe≥ Dã anΣ mus⌠ retur∈ thσ inpu⌠ valuσ i∈ thσ lo≈ bytσ ì
- oµ D0«
-
- - Thσá outpu⌠á routinσ receive≤ thσ Z8ã por⌠ numbe≥ i∈á thσá lo≈ ì
- bytσá oµ registe≥ Dã anΣ thσ outpu⌠ valuσ i∈ thσ lo≈á bytσá oµ ì
- D1.
-
- - Al∮ register≤ ma∙ bσ useΣ withi∈ thσ use≥ driver.
-
- - The user driver must be supplied as a TOS ".PRG" file.
- .PA
-
- è
- ❎S o f t D e s i g n②
-
-
- ❎Optional I/O opcode support②
-
-
-
- U S E R I / O D R I V E R E X A M P L E
-
-
-
- Thi≤ simplσ 6800ã codσ examplσ show≤ ho≈ t∩ acces≤ 1À contiguou≤ ì
- I/נá port≤á froϕá startaddres≤ $FFFF8õ througΦá $FFFF9הá o∈á odΣ ì
- addresses«á Fo≥á examplσá thσ Z8ã instructio∈ Iמ A,(07H⌐á i∈á a∈ ì
- emulated program would read a byte from 68000 address $FFFF8F.
-
-
-
- .TEXT
-
-
- IOBASE: .EQU $FFFF80
-
-
- IO: JMP INPUT
- JMP OUTPUT
-
-
- INPUT: MOVE.L #IOBASE,A0
- AND.W #$000F,D0
- ADD.W D0,D0
- MOVE.B 1(A0,D0.W),D0
- RTS
-
-
- OUTPUT: MOVE.L #IOBASE,A0
- AND.W #$000F,D0
- ADD.W D0,D0
- MOVE.B D1,1(A0,D0.W)
- RTS
-
-
- .END
- əəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəə